
package com.insigma.business.qrcode.soldier.dao;




import com.insigma.business.qrcode.soldier.dto.CompanyEntryApplyBSearcher;
import com.insigma.business.qrcode.soldier.entity.CompanyEntryApplyDO;
import com.insigma.business.qrcode.soldier.entity.DataStatsCDO;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;


public interface CompanyEntryApplyDao {

    
    List<CompanyEntryApplyDO> search(final CompanyEntryApplyBSearcher innerSearcher);

    
    CompanyEntryApplyDO get(final String id);

    
    Integer insert(final CompanyEntryApplyDO companyEntryApplyDO);

    
    Integer update(final CompanyEntryApplyDO companyEntryApplyDO);

    
    Integer delete(@Param("id") final String id,
                   @Param("modifierType") final String modifierType,
                   @Param("modifierId") final String modifierId);

    Integer countByArea(String adminAreaCode);

    Integer countByCreateDatetimeLike(@Param("adminAreaCode") String adminAreaCode, @Param("month") String month);

    List<DataStatsCDO> groupByGuidUnitCode(@Param("adminAreaCode") String adminAreaCode, @Param("levelLength") int levelLength);

    Integer countByBetween(@Param("adminAreaCode") String adminAreaCode, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
}
